package com.cysoft.third.echarts.component.xAxis;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.item.xAxis
 * @date 2025/3/11 12:38
 * @desc 坐标轴刻度标签的相关设置类
 */
public class AxisLabel {

    /**
     * 是否显示刻度标签，默认为 true。
     */
    private boolean show = true;
    /**
     * 刻度标签的显示间隔，默认会采用标签不重叠的策略间隔显示。
     * 可以设置成 0 强制显示所有标签。
     * 如果设置为 1，表示『隔一个标签显示一个标签』，如果值为 2，表示隔两个标签显示一个标签，以此类推。
     * 可以设置成 function 形式，函数的参数是一个数组，数组中有两个元素，第一个是刻度的索引，第二个是刻度的值。
     */
    private Object interval;
    /**
     * 刻度标签是否朝内，默认朝外。
     */
    private boolean inside;
    /**
     * 刻度标签与轴线之间的距离，默认为 8。
     */
    private int distance = 8;
    /**
     * 刻度标签的文字样式。
     */
    private NameTextStyle textStyle;
    /**
     * 刻度标签的格式化函数，可以将刻度标签进行格式化显示。
     */
    private Function<Object, String> formatter;
    /**
     * 刻度标签旋转的角度，默认为 0。
     */
    private int rotate = 0;
    /**
     * 刻度标签的对齐方式，可选值为 'auto'、'left'、'center'、'right'。
     */
    private String align;
    /**
     * 刻度标签的垂直对齐方式，可选值为 'auto'、'top'、'middle'、'bottom'。
     */
    private String verticalAlign;
    /**
     * 刻度标签的行高。
     */
    private int lineHeight;
    /**
     * 刻度标签的背景颜色。
     */
    private String backgroundColor;
    /**
     * 刻度标签的边框颜色。
     */
    private String borderColor;
    /**
     * 刻度标签的边框宽度。
     */
    private int borderWidth;
    /**
     * 刻度标签的圆角半径。
     */
    private int borderRadius;
    /**
     * 刻度标签的内边距。
     */
    private int[] padding;
    /**
     * 刻度标签的阴影颜色。
     */
    private String shadowColor;
    /**
     * 刻度标签的阴影模糊度。
     */
    private int shadowBlur;
    /**
     * 刻度标签的阴影水平偏移。
     */
    private int shadowOffsetX;
    /**
     * 刻度标签的阴影垂直偏移。
     */
    private int shadowOffsetY;
    /**
     * 从 v5.0.0 开始支持，刻度标签的显示优先级，当标签重叠时，优先级高的标签会优先显示。
     */
    private int priority;
    /**
     * 从 v5.0.0 开始支持，刻度标签的截断配置。
     */
    private NameTruncate truncate;
}
